Apex-এ Try-Catch-Finally ব্লক এবং Throw Statement Exception Handling এর একটি গুরুত্বপূর্ণ অংশ, যা ত্রুটি সনাক্ত ও সঠিকভাবে হ্যান্ডল করতে সহায়ক। Try-Catch-Finally ব্লক কোনো কোডে ত্রুটি ঘটলে তা হ্যান্ডল করে এবং Throw Statement ব্যবহার করে নির্দিষ্ট ত্রুটি তৈরি বা "থ্রো" করতে পারে।
Try-Catch-Finally ব্লক ত্রুটি হ্যান্ডল করার একটি স্ট্রাকচার, যা তিনটি অংশে বিভক্ত:
Try ব্লক: try
ব্লকের মধ্যে এমন কোড লেখা হয় যেখানে ত্রুটি ঘটতে পারে। Exception ঘটলে এটি catch
ব্লকে চলে যায়।
Catch ব্লক: catch
ব্লক Exception এর ধরন অনুযায়ী ত্রুটি সনাক্ত করে এবং তা হ্যান্ডল করে। এখানে নির্দিষ্ট Exception (যেমন DmlException
, NullPointerException
) উল্লেখ করা যায়।
Finally ব্লক: finally
ব্লক সবসময় চালিত হয়, Exception ঘটুক বা না ঘটুক। এটি সাধারণত ক্লিনআপ কাজের জন্য ব্যবহৃত হয়।
try {
// Potentially error-prone code
Integer result = 10 / 0; // Division by zero, causes ArithmeticException
System.debug('Result: ' + result);
} catch (ArithmeticException e) {
System.debug('ArithmeticException: ' + e.getMessage());
} catch (Exception e) {
System.debug('General Exception: ' + e.getMessage());
} finally {
System.debug('Operation completed.');
}
ArithmeticException
-এর ক্ষেত্রে প্রথম catch
ব্লক কাজ করবে। অন্য Exception হলে দ্বিতীয় catch
ব্লক কাজ করবে।"Operation completed."
মেসেজ প্রিন্ট করবে।Throw Statement এর মাধ্যমে নির্দিষ্ট Exception তৈরি করা হয় এবং ইচ্ছাকৃতভাবে Exception "থ্রো" করা হয়। এটি সাধারণত কাস্টম Exception তৈরি বা নির্দিষ্ট শর্ত পূরণ না হলে ত্রুটি সনাক্ত করতে ব্যবহৃত হয়। Throw Statement ব্যবহার করে Exception তৈরি করার জন্য throw
কিওয়ার্ড ব্যবহার করা হয়।
public void validateAge(Integer age) {
if (age < 18) {
throw new IllegalArgumentException('Age must be 18 or older.');
}
System.debug('Age is valid.');
}
age
১৮ এর কম হলে IllegalArgumentException
Exception থ্রো করা হয়েছে এবং কাস্টম বার্তা প্রদান করা হয়েছে।Throw Statement এর মাধ্যমে Exception তৈরি করার পর Try-Catch-Finally ব্লকে এটি হ্যান্ডল করা যেতে পারে।
try {
validateAge(15); // Throws IllegalArgumentException
} catch (IllegalArgumentException e) {
System.debug('Caught Exception: ' + e.getMessage());
} finally {
System.debug('Validation completed.');
}
validateAge(15)
কল করলে IllegalArgumentException
থ্রো হয়।IllegalArgumentException
Exception ধরে এবং বার্তা প্রদর্শন করে।"Validation completed."
প্রিন্ট করে।Apex এ কাস্টম Exception তৈরি করে নির্দিষ্ট পরিস্থিতিতে Exception থ্রো করা যায়। Custom Exception তৈরির জন্য নতুন একটি ক্লাস তৈরি করে extends Exception
ব্যবহার করা হয় এবং এরপর throw
ব্যবহার করে Exception তৈরি করা যায়।
// Custom Exception ক্লাস
public class AgeValidationException extends Exception {}
public void validateCustomAge(Integer age) {
if (age < 18) {
throw new AgeValidationException('Age must be 18 or older.');
}
System.debug('Age is valid.');
}
// Try-Catch ব্লক দিয়ে Custom Exception হ্যান্ডল করা
try {
validateCustomAge(15); // Throws AgeValidationException
} catch (AgeValidationException e) {
System.debug('Caught Custom Exception: ' + e.getMessage());
}
AgeValidationException
নামে নতুন Exception তৈরি করা হয়েছে।age
১৮ এর কম হয়, তবে AgeValidationException
Exception থ্রো করা হয়েছে।AgeValidationException
Exception সনাক্ত করে এবং বার্তা প্রিন্ট করে।DmlException
, NullPointerException
ধরলে ত্রুটি হ্যান্ডলিং আরও কার্যকর হয়।finally
ব্লক ব্যবহার করা উচিত।Exception Handling Apex এ কোডের স্থায়িত্ব ও কার্যকারিতা বৃদ্ধি করে এবং ত্রুটির সময় সঠিক পদক্ষেপ গ্রহণে সহায়ক।
common.read_more